﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Bomberman
{
	[Serializable]
	public class Tanque : Enemigo
	{
		public Tanque(int vida, int velocidad, string nombre = "Enemigo") : base(vida, velocidad, nombre)
		{
			this.controlador = new ControladorTerrestre();
		}

		public override void Atacar()
		{
			base.Atacar();

			Disparar();
		}

		public void Disparar()
		{
			if (PuedeDisparar() == false) return;

			Random random = new Random();
			Proyectil proyectil = new Proyectil();
			Dictionary<string, Casillero> adyacentes = this.casilleroActual.Adyacentes;
			Casillero casilleroDireccion;

			int randomNumber = random.Next(adyacentes.Count);
			casilleroDireccion = (this.Posicion()).Adyacentes[adyacentes.Keys.ElementAt(randomNumber)];

			while (casilleroDireccion == null)
			{
				adyacentes.Remove(adyacentes.Keys.ElementAt(randomNumber));

				randomNumber = random.Next(adyacentes.Count);

				casilleroDireccion = (this.Posicion()).Adyacentes[adyacentes.Keys.ElementAt(randomNumber)];
			}


			proyectil.Posicionar(casilleroDireccion);
			proyectil.Disparar(adyacentes.Keys.ElementAt(randomNumber));
		}
	}
}
